Methods, Systems, And Computer Program Products For Grouping Tabbed Portions Of A Display Object Based On Content Relationships And User Interaction Levels

ABSTRACT

Methods, systems, and computer program products for grouping tabbed portions of a display object based on content relationships and user interaction levels are disclosed. According to one method, a display object including one or more tabbed portions is provided for display via a computer display device. A level of user interaction associated with each of the tabbed portions is monitored. A request for adding new information to the display object is received. A level of content relationship between the new information and the information including in the at least one of the tabbed portions is determined. A new tabbed portion is created and grouped with the at least one tabbed portion based on the determined level of content relationship and the level of user interaction associated with the at least one tabbed portion.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.11/476,435, which was filed Jun. 28, 2006, the disclosure of which ishereby incorporated by reference in their entireties.

TECHNICAL FIELD

The subject matter described herein relates to controlling display ofinformation via a computer display device. More particularly, thesubject matter described herein relates to methods, systems, andcomputer program products for grouping tabbed portions of a displayobject based on content relationships and user interaction levels.

BACKGROUND ART

In computer display systems, it is desirable to present information to auser in an organized manner. Most computer operating systems includegraphical user interfaces that display information to a user usinggraphical objects, which will be referred to herein as display objects.One common example of a display object that is used to displayinformation to a user is a window object. A window object includes aframe that encloses the information being displayed to the user. Thewindow object may also include controls for controlling display ofinformation within the window object.

A window object may be divided into tabbed portions or tabs fororganizing display of different information. For example, the SystemProperties window object displayed by the Microsoft Windows XP®operating system contains various folder tabs for managing hardware andsoftware aspects associated with a computer system. Examples of tabsthat are available via the System Properties window object include aGeneral tab, a Computer Name tab, a Hardware tab, and an Advanced tab.Each of these tabs displays different information to a user and allowsthe user to modify computer system properties. However, the MicrosoftWindows XP® operating system does not allow a user to add new tabs toexisting window objects or to organize or group tabs that are related toeach other.

In addition to being used by operating systems to organize the displayof information to a user, tabs have also been used by applications, suchas web browsers. However, some conventional web browsers lack theability to simultaneously display multiple web pages using tabs. Webbrowsers include web clients that allow a user to contact and obtaininformation from web servers. Web browsers display information receivedfrom web servers in window object display areas. Using the currentMicrosoft Internet Explorer® web browser, each web page returned by aweb server occupies the entire web page viewing area of the web browserwindow object. When a user selects a new web page by clicking on a linkwithin the web page viewing area, the new web page replaces the originalweb page. The only way of using the current version of MicrosoftInternet Explorer® to simultaneously view two or more web pages is toopen another instance of the browser.

In light of this shortcoming of conventional web browsers, web browsersthat allow users to simultaneously display multiple web pages using tabshave been developed. For example, the Firefox® web browser availablefrom Mozilla Corporation allows the simultaneously display of multipleweb pages using tabs. The ability to create and navigate web page tabsis referred to as tabbed browsing and allows a user to quickly switchbetween previously accessed web pages. Tabs are arranged in a horizontalarray in order of creation in the web page viewing area. In order toselect a tab and view the corresponding web page, the user clicks on thetab. The selected tab blocks the view of content in the remaining tabs.

One problem associated with tab-based web browsers and other tab-basedinterfaces is that these interfaces do not provide mechanisms forreordering or grouping tabs. For example, the above-described MozillaFirefox® browser displays tabs in order of creation and does not allowtabs to be re-ordered or grouped. Downloadable extensions to tab-basedbrowsers allow users to select the location of newly opened tabs.However, such extensions do not automatically group tabs in a mannerthat utilizes content relationships and user interaction levels.

Accordingly, in light of these difficulties, there exists a need formethods, systems, and computer program products for grouping tabbedportions of a display object based on content relationships and userinteraction levels.

SUMMARY

The subject matter described herein includes methods, systems, andcomputer program products for grouping tabbed portions of a displayobject based on content relationships and user interaction levels.According to one method, a display object with one or more tabbedportions is provided. A level of user interaction associated with eachof the tabbed portions is monitored. A request is received for addingnew information to a display object. A level of content relationshipbetween the new information and information associated with at least oneof the tabbed portions is determined. A new tabbed portion that containsthe new information is created. The new tabbed portion is grouped withthe at least one tabbed portion based on the level of user interactionassociated with the at least one tabbed portion and the level of contentrelationship between the new information and the information associatedwith at least one tabbed portion.

Certain actions are described herein as occurring in response to otheractions. The phrase “in response to” is not intended to be limited toany particular temporal relationship. For example, a second action thatoccurs in response to a first action may occur immediately after thefirst action or at some time later than the first action. In addition,intervening actions or events may occur between the first and secondactions.

The subject matter described herein for grouping tabbed portions of adisplay object may be implemented using a computer program productcomprising computer executable instructions embodied in a computerreadable medium. Exemplary computer readable media suitable forimplementing the subject matter described herein include disk memorydevices, chip memory devices, programmable logic devices, applicationspecific integrated circuits and the like. In addition, a computerprogram product that implements the subject matter described herein maybe located on a single device or computing platform or may bedistributed across multiple devices or computing platforms.

BRIEF DESCRIPTION OF THE DRAWINGS

Preferred embodiments of the subject matter described herein will now beexplained with reference to the accompanying drawings of which:

FIG. 1 is a block diagram of a system for grouping tabbed portions of adisplay object based on content relationships and user interactionlevels according to an embodiment of the subject matter describedherein;

FIG. 2 is a block diagram illustrating an exemplary window object withtabbed portions according to an embodiment of the subject matterdescribed herein;

FIG. 3 is a block diagram illustrating an exemplary method fordisplaying tabbed portions of a display object in a manner thatillustrates groupings between tabs according to an embodiment of thesubject matter described herein;

FIG. 4 is a block diagram illustrating an alternate method fordisplaying tabbed portions of a display objects in a manner thatillustrates groupings between tabs according to an embodiment of thesubject matter described herein;

FIG. 5 is a flow chart illustrating an exemplary process for groupingtabbed portions of a display object based on content relationships anduser interaction levels according to an embodiment of the subject matterdescribed herein;

FIG. 6 is a flow chart illustrating an exemplary process for monitoringuser interaction associated with tabbed portions of a display objectaccording to an embodiment of the subject matter described herein; and

FIG. 7 is a flow chart illustrating an exemplary process for identifyinga level of content relationship between tabs and information accordingto an embodiment of the subject matter described herein.

DETAILED DESCRIPTION OF THE INVENTION

The subject matter described herein includes methods, systems, andcomputer program products for grouping tabbed portions of a displayobject based on content relationships and user interaction levels. FIG.1 is a block diagram illustrating an exemplary system for groupingtabbed portions of a display object based on content relationships anduser interaction levels according to an embodiment of the subject matterdescribed herein. Referring to FIG. 1, system 100 may include a displayobject presentation controller 102, a user interaction monitor 104 andassociated database 106, a tab controller 108, and a related tab manager110. Display object presentation controller 102 may control or providefor display of objects to a user via a computer display device. Forexample, display object presentation controller 102 may be a windowpresentation controller that displays window objects including one ormore folder tabs to a user. In one example, display object presentationcontroller 102 may provide a window object usable by a web browser fordisplaying web pages as folder tabs. Display object presentationcontroller 102 may also receive input from a user for controllingdisplay of tabbed portions of a display object. For example, displayobject presentation controller 102 may receive user input for creatingor displaying new folder tabs. Display object presentation controller102 may communicate information regarding user interaction with existingtabs to user interaction monitor 104. Display object presentationcontroller 102 may communicate user requests to create new tabs to tabcontroller 108.

User interaction monitor 104 may monitor a level of user interactionassociated with tabbed portions of a display object. For example, userinteraction monitor 104 may monitor at least one of a recency of userinteraction with a tabbed portion of a display object and an amount oftime associated with each user interaction. User interaction monitor 104may begin measuring time associated with a user interaction in responseto detecting that a tabbed portion of a display object has focus. Suchfocus may be detected, for example, when a user clicks on or moves acurser over a tabbed portion of a display object to select the portionor object. When an object or component of a graphical user interface(GUI) is said to have “focus,” it will be understood that the componentis currently selected, such that input from the GUI, including textentered at a keyboard or pasted from a clipboard, is sent to thecomponent currently having focus. In an alternate example, userinteraction monitor 104 may determine a level of user interactionassociated with a tabbed portion of a display object based on an amountof user input associated with the tabbed portion. For example, userinteraction monitor 104 may monitor a number of keystrokes or otherinput entered by a user when a tabbed portion of a display object hasfocus. Information regarding user interaction associated with a displayobject may be stored in user interaction database 106.

In one implementation, user interaction monitor 104 may assign a recencyrank and a percentage utilization rank to each tabbed portion of adisplay object. User interaction monitor 104 may monitor userinteractions with all or a predetermined subset of tabbed portions fortime periods between events that indicate a new instance of anapplication associated with a tabbed portion. A new instance of anapplication may be indicated when a new browser or other applicationwindow is started. User interactions may be separately monitored fortabs within each window object so that groupings of tabbed portions canbe made within each window object. In an alternate embodiment, devicestatus can be used to reset the user interaction monitoring. Forexample, the system may track user interactions with each tabbed portionafter every restart, power on, start, or other event. The userinteraction timer may be reset when such events occur.

As stated above, interaction of a user with each tab may be determinedbased on focus. In current computer operating systems, several windowobjects, each having associated tabs, may be presented on a displayscreen at a given time. The window having focus may be the window wherethe cursor resides. Selection of a window or tab does not implycontinuous interaction of the user with the tab, but it provides a goodestimate of the prominence or focus of the window with respect to otherwindows. Accordingly, as stated above, focus on a window or tab may beused to start timing user interaction with the associated window or tab.

As stated above, in an alternate example, the interaction levelassociated with the tab may be measured by an amount of user input, suchas the number of keystrokes that were entered within each tab. Measuringan amount of user input is advantageous in that this metric uses adeeper interaction metric than selection. However, using the number ofkeystrokes as a measure of a user interaction level may fail to indicatethe relative utilization of a tab when a user spends a lot of timereading information in a tab. This is especially true for web pageswhere the user spends more time reading, and there is almost no inputfrom the user in the window except scrolling. In such instances, theamount of scrolling or, the number of repeat visits to a page, ortime-based metrics may be used to measure user interaction.

Tab controller 108 may receive user input to add information to adisplay object, create a new tabbed portion containing the newinformation, and group the new tabbed portion with one or more existingtabbed portions of the display object based on the level of userinteraction associated with the one or more tabbed portions and thelevel of content relationship between the new information andinformation associated with the existing tabbed portion or portions. Inone implementation, tab controller 108 may receive input via displayobject presentation controller 102 that indicates that a user wishes toadd a new tabbed portion to a display object. Tab controller 108 maythen obtain information from related tab manager 110 indicating thelevel of content relationship between the new information and one ormore existing tabbed portions associated with a display object. Tabcontroller 108 may also obtain information from user interaction monitor104 that indicates the level of user interaction associated with theexisting tabbed portions. Based on this information, tab controller 108may group the new tabbed portion with one or more existing tabbedportions.

In one implementation, tab controller 108 may identify the existingtabbed portion associated with a window object having a highest level ofcontent relationship with the new information. Tab controller 108 maygroup the existing tabbed portion with the new tabbed portion inresponse to the existing tabbed portion having a level of userinteraction that exceeds a threshold. However, if the level of userinteraction associated with the existing tabbed portion does not exceedthe threshold, tab controller 108 may select a tabbed portion with thenext highest level of content relationship with the new information andmay repeat the test for determining whether the user interaction withthe selected tabbed portion exceeds the threshold. The process may berepeated for multiple tabbed portions to identify the highest-utilizedexisting tabbed portions with which the new tabbed portions could begrouped.

In one implementation, if tab controller 108 identifies an existingtabbed portion that has a high level of content relationship with thenew tabbed portion and a high level of user interaction, tab controller108 may associate the new tabbed portion with the existing tabbedportion as a child of the existing tabbed portion. This operation isparticularly useful when the existing tabbed portion has focus at thetime the new tabbed portion is being added to the browser window. If tabcontroller 108 determines that the existing tabbed portion has a highlevel of content relationship with the new tabbed portion and a lowlevel of user interaction, tab controller 108 may associate the newtabbed portion with the existing tabbed portion as a parent of theexisting tabbed portion. Thus, if a user has temporarily lost interestin the information presented in a tabbed portion over the course of abrowsing session, but later in the session requests information bedisplayed in the new tabbed portion that is related to the previouslyviewed information, the “dormant” tab can be automatically grouped withthe new tabbed portion as child window. This can save the user thetrouble of having to locate the information included in the “dormant”tab, especially when a large number of tabbed portions have be added tothe browser over the course of the browsing session.

Tab controller 108 may receive, from display object presentationcontroller 102, a request for a new tabbed portion to be displayed in awindow object. If the item being displayed is a web page, the additionalinformation to be displayed may be a folder tab corresponding to the webpage. Requests for displaying web pages may be received when a userclicks on a web link in a web browser, enters web page locationinformation in the location bar field of a web browser, clicks on a URLin an open tab, or clicks on a URL in an email. In other examples, tabcontroller 108 may receive an entering of information associated with anelement of a display object to which a tab is requested to be added.Examples of information that may be entered in elements associated witha display object may include information entered into a search querybox, information entered into a browser location bar, activation of alink in a favorites menu of a browser, or activation of a link stored ina history list of a browser.

In another example, tab controller 108 may receive a request for addinginformation to a display object from executable code associated with thedisplay object, such as Java® script associated with a web browser. Inyet another example, tab controller 108 may receive the request foradding information to a display object from an application program thatis not directly associated with the display object. For example, tabcontroller 108 may receive a request for adding information to a displayobject from user activation of a link in an application, such as a wordprocessing application, that launches a browser or a tab externally tothe browser or tab.

When a request for adding information to a display object is received,tab controller 108 may extract parameter values from fields associatedwith the web page for generating the new folder tab. Tab controller 108may also pass this information to related tab manager 110. The followingillustrates a non-exhaustive list of examples of information that may beextracted by tab controller 108 when the information requested to bedisplayed is a web page:

The title of the page:

-   -   e.g., <title>North Carolina State University</title>

The meta name of the page:

-   -   e.g., <meta name=“Title” content=“CNN.com-Breaking News, U.S.,        World, Weather, Entertainment &amp; Video News”>

The links contained within the page:

-   -   e.g., <a href=http://mobile.wral.com/online/>

Related tab manager 110 may receive the information from tab controller108 and may identify a level of content relationship between the newinformation and information associated with one or more existing tabs.For example, related tab manager 110 may identify tabbed portionsassociated with a display object that are related to a new tabbedportion by comparing a portion of new information that is to be or thatis associated with an element of the new tabbed portion and informationassociated with an element of the existing tabbed portion. Related tabmanager 110 may assign a score to the content relationship between thenew information and the information included in the tabbed portion basedon results of the comparison. In one implementation, related tab manager110 may compare information associated with elements, such as a titlebar, a tab bar, a location bar, a search bar, a toolbar, a status bar, abrowser pane, a history pane, a favorites pane, a link associated withat least one of a browser, a history, and a favorites pane, metadata, aheader portion, a footer portion, information included in a list item,and a control associated with tabbed portions to identify levels ofcontent relationship between the tabbed portions. Related elements maybe compared. For example, it may be desirable to compare informationassociated with corresponding elements, such as comparing titlesassociated with tabbed portions. In an alternate implementation, it maybe desirable to compare elements that do not correspond to each other.For example, it may be desirable to compare a title of one tabbedportion to a link associated with another tabbed portion.

As stated above, when tab controller 108 receives a request for addinginformation to a display object, tab controller 108 may pass informationrelating to the request to related tab manager 110. Related tab manager110 may perform the task of finding one or more related tabs associatedwith the display object currently open based on informationcorresponding to each tabbed portion.

Related tab manager 110 may perform the task of finding a related tabfrom the tabbed portions of the window object that are currently openbased on the information corresponding to each tabbed portion. In oneimplementation, related tab manager 110 compares the contents of theadditional information with the content that it receives for each tabbedportion of the window object. The comparison may be performed in thefollowing way:

-   -   i. If the title of the additional information and the title of        the tabbed portion contain any term that is the same, the tabbed        portion's score is increased by +2 for each match. If no terms        between the two are the same no action is taken.    -   ii. The metadata tags of the additional information are compared        to the metadata tags for each of the tabbed portions. For every        metadata term that matches, the tabbed portion gets a score of        +1. Thus, if two of the metadata terms in the additional        information match the metadata tags of a tabbed portion, then        the tabbed portion will get a score of +2. Several tabbed        portions may have metadata terms that match. Each such tabbed        portion will have a score based on the number of matching terms.    -   iii. The URL of the additional information is compared with the        URLs contained in the tabbed portions of the window object. If        the URL of the additional information is contained in the tabbed        portions, the score for those tabbed portions is augmented by        +3.    -   iv. For each tabbed portion, a calculation is made for the        content score by adding the scores obtained from steps i, ii,        and iii.    -   v. The tabbed portion with the highest content score is taken.        The information about the interaction level of all tabbed        portions stored in information database 106 is retrieved.        Database 106 stores the recency rank and the percentage of time        spent on the tabbed portion.

A first test that is performed on the tabbed portion with the highestcontent score is to check if it has been recently browsed. There areseveral possible implementations to make this determination. In oneexemplary implementation, tab controller 108 may check to see if thetabbed portion is in the top 50% of all tabbed portions. In alternativeembodiments, additional temporal aspects may be included in themeasurement. For example, the system could consider a tabbed portion tobe recently browsed if it was interacted within the last hour.

A second test that is performed on the tabbed portion is determiningwhether the percentage of time spent interacting with the tabbed portionexceeds a threshold. There are several possible implementations forcalculating that the time spent on a tabbed portion is enough to relateit to the additional information. In one implementation, tabs that fallwithin the top 50% in terms of the time spent are considered recentenough. A goal is to eliminate rarely used tabbed portions. The top 50%of the tabs are ordered from highest to lowest.

If the tabbed portion with the highest content score passes both thetests pertaining to the user interaction level, then the tabbed portionis identified as the tabbed portion related to the additionalinformation. If not, the tabbed portion with the next highest contentranking is considered and same tests are applied. The result is arelated tabbed portion. It is possible that none of the tabs meet thecriteria of being related. In that case the method returns no relatedtab.

As stated above, related tab manager 110 may provide informationindicating the level of content relationship between informationassociated with requested and existing tab portions. Tab controller 108may use the relationship information in combination with userinteraction information to determine how to group and display the tabbedportions.

FIG. 2 is a block diagram illustrating a display screen, a windowobject, and tabbed portions associated with a web browser. In FIG. 2,display screen 200 may be any suitable display screen, such as a displayscreen associated with a personal computer, a mobile telephone, a smartphone, a personal digital assistant, or any other device capable ofdisplaying information to a user in graphical format. A window object202 may be a graphical entity for displaying information. For example,window object 202 may be a window object that is associated with a webbrowser. Tabbed portions 204A-204C may each include content to bedisplayed to the user. In the illustrated example, tab 204B is theselected tab (e.g., the tab having focus) and includes web links 206 tobe displayed to the user. The data in remaining tabs 204A and 204C isblocked by tab 204B. Buttons 208A-208D may control various actions ofthe application corresponding to window object 202. For example, if theapplication is a web browser, buttons 208A-208D may activate web browserfunctions.

In FIG. 2, it can be seen that browser tabs are displayed in an equalmanner. That is, other than the selected tab being displayed in front ofthe other tabs, no groupings are present. The subject matter describedherein may be used to group tabs based on relationships between tabs andto display such relationships to the user. FIG. 3 is a block diagramillustrating one method that may be used to display tabs in a mannerthat illustrates a grouping relationship between the tabs. Referring toFIG. 3, display object 200 may be any suitable display object, such as awindow object. Tabs 300, 302, and 304 are shown with tab identifierportions of equal size. However, tabs 306 and 308 are shown as beingadjacent to tab 300 and are shown with smaller tab identifier portionsthan tab 300. The adjacency and the size relationships between tabs 300,306, and 308 are intended to illustrate a parent-child relationshipbetween tab 300 and tabs 306 and 308. That is, tabs 306 and 308 areshown as children of tab 300.

FIG. 4 is a block diagram illustrating another example of a method fordisplaying tabs in a manner that illustrates groupings between the tabsaccording to an embodiment of the subject matter described herein.Referring to FIG. 4, tabs 400, 402, 404, 406, 408, 410, and 412 areshown with their corresponding tab identifier portions being within atab identifier portion of tab 414. In this arrangement, tabs 400, 402,404, 406, 408, 410, and 412 are intended to be depicted as children oftab 414. Tabs 416 and 418 represent different groups that are not partof the parent-child relationship. It should also be noted that in theexample in FIG. 4, multiple levels of relationships can be shown. Forexample, tab 402 is shown as a child of tab 404, and child 404 is shownas a child of tab 414, making tab 402 a grandchild of tab 414.

FIG. 5 is a flow chart illustrating an exemplary process for groupingtabbed portions of a display based on content relationships and userinteraction that is according to an embodiment of the subject matterdescribed herein. Referring to FIG. 5, in block 500, a display objectincluding one or more tabbed portions is provided for display to a uservia a computer display device. For example, display object presentationcontroller 102 may display a window object including one or more foldertabs. In block 502, a level of user interaction associated with each ofthe tabbed portions is monitored. The user interaction level may bemonitored by user interaction monitor 104 using any of the metricsdescribed herein. In block 504, user input for adding new information tothe display object is received. For example, display object presentationcontroller 102 may receive a request to add information to a displayobject and may provide the request to tab controller 108.

In block 506, a level of content relationship between the newinformation and information included in at least one of the existing tabportions is determined. For example, related tab manager 110 may comparethe new information with information associated with other requested orexisting tabs and determine a level of content relationship associatedwith each set of information being compared. In block 508, a new tabbedportion including the new information is created and grouped with atleast one of the existing tabbed portions based on the determined levelof content relationship and the level of user interaction associatedwith the existing tabbed portion. For example, tab controller 108 mayuse the information collected by related tab manager 110 and userinteraction monitor 104 to identify other new or existing tabs relatedto the tab being added, to determine user interaction levels associatedwith the other new or existing tabs, and to group the new tab with oneor more of the other new or existing tabs.

FIG. 6 is a flow chart illustrating an exemplary process for monitoringtabs. Referring to FIG. 6, in block 600, information about a tabbedportion is received. For example, user interaction monitor 104 mayreceive identifying information for a tab from tab controller 108 orfrom display object presentation controller 102. In block 602,information about the recency of interaction with each tab ismaintained. Information about recency may include determining when eachtab last had focus, as described above. In block 604, information aboutthe time spent by the user interacting with each tab as a percentage oftotal time spent on the remaining tabs is recorded. The time spentinteracting with each tab may be measured by the time during which thetab has focus, as described above. Alternatively, user interaction maybe measured by an amount of user input associated with each tab.

FIG. 7 is a flow chart illustrating an exemplary process for identifyingrelated tabs. Referring to FIG. 7, in block 700, a request to displayinformation is received. For example, the request may be a request toadd a web page tab to the viewing area of a web browser. In block 702,content information for each tabbed portion is received. For example,the content information from an existing tab portion may be extractedfrom information database 106 illustrated in FIG. 1. The contentinformation for the new tabbed portion may be extracted from the requestfrom the user.

In block 704, content of the new or additional information is comparedwith content of the existing tabbed portions. The tabbed portions may beranked based on percentage of match with the new information. In block706, a highest ranked tabbed portion based on match is selected. Inblock 708, it is determined whether the tabbed portion passes therecency test. As stated above, the recency test may include comparingthe time that the user last interacted with a tab with a predeterminedthreshold. If the tab has not been interacted with within apredetermined time period, it may be excluded from consideration forgrouping with the new information. Accordingly, in block 708, if thetabbed portion does not pass the recency test, control proceeds to block710 where the tab is eliminated from the list. If the tab passes therecency test, control proceeds to block 712 where it is determinedwhether the tabbed portion passes the percentage of time spent test. Asstated above, the percentage of time spent test may include comparingthe percentage of time spent in the tab with a threshold. If the tabdoes not pass this test, control may proceed to block 710 where the tabis eliminated from potential grouping with the new information. If thetab passes, control proceeds to block 714 where the tabbed portion isidentified as a related tabbed portion. Control may then proceed toblock 716 where the additional information is arranged or grouped withthe related tabbed portion.

Returning to block 710, if the tab is eliminated from the list, controlproceeds to block 718 where it is determined whether the list is empty.If the list is empty, the process of identifying related tabs ends. Ifthe list is not empty, control returns to block 706 where the nexthighest ranked tabbed portion in the list is tested.

According to one aspect of the subject matter described herein, a systemfor grouping tabbed portions of a display object based on contentrelationships and user interaction levels associated with the tabbedportions is provided. The system may include means for providing adisplay object including one or more tabbed portions for display to auser via a computer display device. For example, display objectpresentation controller 102 may display one or more window objectshaving tabbed portions via a computer display device. The system mayfurther include means for monitoring a level of user interactionassociated with each of the tabbed portions. For example, userinteraction monitor 104 may monitor a level of user interactionassociated with tabbed portions of a display object using any of theuser interaction metrics described above.

The system may further include means for receiving user input for addinginformation to the display object. For example, display objectpresentation controller 102 may receive user input for adding a newfolder tab to a web browser presentation area and may pass the input totab controller 108. The system may further include means for determininga level of content relationship between the new information andinformation included in at least one of the tabbed portions. Forexample, related tab manager 110 may compare information extracted fromthe user input with information stored for existing tabbed portions toidentify a level of content relationship between the new information andthe existing tabbed portions.

The system may further include means for creating a new tabbed portionincluding the new information and grouping the new tabbed portion withthe at least one tabbed portion based on the determined level of contentrelationship and the level of user interaction associated with the atleast one tabbed portion. For example, tab controller 108 may create anew folder tab containing information extracted from the user inputrequesting the new tabbed portion. Tab controller 108 may group the newfolder tab with one or more existing folder tabs based on the level ofcontent relationship between the new information and the existing foldertabs and the user interaction levels associated with the existing foldertabs.

It will be understood that various details of the invention may bechanged without departing from the scope of the invention. Furthermore,the foregoing description is for the purpose of illustration only, andnot for the purpose of limitation.

What is claimed is:
 1. A method for grouping tabbed portions of adisplay object based on content relationships and user interactionlevels, the method comprising: providing a display object including oneor more tabbed portions for display to a user via a computer displaydevice; receiving a request to add new information to the displayobject; monitoring a level of user interaction associated with each ofthe tabbed portions; determining, without user input, a level of contentrelationship between the new information and information included in atleast one of the tabbed portions; and creating a new tabbed portionincluding the new information and grouping the new tabbed portion withthe at least one tabbed portion based on the determined level of contentrelationship and the level of user interaction associated with the atleast one tabbed portion.
 2. The method of claim 1 wherein providing adisplay object including one or more tabbed portions includes providinga window object including one or more folder tabs.
 3. The method ofclaim 1 wherein providing a display object including one or more tabbedportions includes providing a window object controllable by a webbrowser to control display of one or more web pages as one or morefolder tabs.
 4. The method of claim 1 wherein monitoring a level of userinteraction associated with each of the tabbed portions includes, foreach tabbed portion, monitoring at least one of a recency of userinteraction associated with the tabbed portion and an amount of timeassociated with the user interaction.
 5. The method of claim 1 whereinmonitoring a level of user interaction associated with each tabbedportion includes, for each tabbed portion, detecting when the tabbedportion has focus and monitoring a time during which the tabbed portionmaintains focus.
 6. The method of claim 1 wherein monitoring a level ofuser interaction associated with each of the tabbed portions includes,for each tabbed portion, monitoring an amount of user input associatedwith the tabbed portion.
 7. The method of claim 1 wherein receiving arequest for adding new information to the display object includesreceiving input for adding a web page as a tabbed portion to the displayobject.
 8. The method of claim 1 wherein receiving a request for addingnew information to the display object includes detecting at least oneof: an activation of a link displayed in a first tabbed portion; anentering of information associated with an element of the displayobject; a request for adding the information from executable codeassociated with the display object; and a request for adding theinformation from an application program not directly associated with thedisplay object.
 9. The method of claim 8 further comprising grouping thenew tabbed portion with the first tabbed portion in response todetecting the activation of the link displayed in the first tabbedportion.
 10. The method of claim 1 wherein grouping the new tabbedportion with the at least one tabbed portion includes identifying afirst tabbed portion from the plurality of tabbed portions having ahighest level of content relationship among the plurality of tabbedportions with the new information, determining whether the first tabbedportion has a level of user interaction that exceeds a threshold, and,in response to determining that the level of user interaction associatedwith the first tabbed portion exceeds the threshold, grouping the newtabbed portion with the first tabbed portion.
 11. The method of claim 10wherein grouping the new tabbed portion with the at least one tabbedportion includes, in response to determining that the first tabbedportion does not have a level of user interaction that exceeds thethreshold, refraining from grouping the new tabbed portion with thefirst tabbed portion and selecting a second tabbed portion having asecond highest level of content relationship with the new information asa candidate for grouping with the new tabbed portion.
 12. The method ofclaim 1 comprising displaying the new tabbed portion with the at leastone tabbed portion in a manner that illustrates the grouping between thenew tabbed portion and the at least one tabbed portion.
 13. The methodof claim 12 wherein displaying the new tabbed portion with the at leastone tabbed portion in a manner that illustrates the grouping includesdisplaying the new tabbed portion and the at least one tabbed portion ina manner that illustrates a parent-child relationship between the newtabbed portion and the at least one tabbed portion.
 14. A system forgrouping tabbed portions of a display object based on contentrelationships and user interaction levels associated with the tabbedportions, the system comprising: a display object presentationcontroller for providing a display object including one or more tabbedportions for display to a user via a computer display device; a tabcontroller for receiving a request for adding new information to thedisplay object; a user interaction monitor for monitoring a level ofuser interaction associated with each of the tabbed portions; a relatedtab manager for determining a level of content relationship between thenew information and information included in at least one of the tabbedportions; and wherein the tab controller is adapted to create a newtabbed portion including the new information and to group the new tabbedportion with the at least one tabbed portion based on the level of userinteraction associated with the at least one tabbed portion and thedetermined level of content relationship.
 15. The system of claim 14wherein the display object presentation controller comprises a windowobject presentation controller for displaying a window object includingone or more folder tabs.
 16. The system of claim 14 wherein the displayobject presentation controller is adapted to provide a window objectusable by a web browser for displaying one or more web pages as one ormore folder tabs.
 17. The system of claim 14 wherein the userinteraction monitor is adapted to determine the level of userinteraction associated with each of the tabbed portions based on atleast one of a recency of user interaction and an amount of timeassociated with each user interaction with each of the tabbed portions.18. The system of claim 14 wherein the user interaction monitor isadapted to determine the level of user interaction associated with eachof the tabbed portions based on an amount of user input associated witheach tabbed portion.
 19. The system of claim 14 wherein the tabcontroller is adapted to detect at least one of: activation of a linkdisplayed in a first tabbed portion; an entering of informationassociated with an element of the display object; a request for addingthe information from executable code associated with the display object;and a request for adding the information from an application program notdirectly associated with the display object.
 20. The system of claim 19wherein the tab controller is further adapted to group the new tabbedportion with the first tabbed portion in response to detecting theactivation of the link displayed in the first tabbed portion.
 21. Thesystem of claim 14 wherein the tab controller is adapted to identify afirst tabbed portion including information having a highest level ofcontent relationship with the new information and to group the firsttabbed portion with the new tabbed portion in response to the firsttabbed portion having a level of user interaction that exceeds athreshold.
 22. The system of claim 21 wherein the tab controller isadapted to refrain from grouping the first tabbed portion with the newtabbed portion in response to the first tabbed portion having a level ofuser interaction that does not exceed the threshold and to identify asecond tabbed portion of the plurality of tabbed portions withinformation having a second highest level of content relationship withthe new information as a candidate for grouping with the new tabbedportion.
 23. The system of claim 14 wherein the tab controller isadapted to display the new tabbed portion with the at least one tabbedportion in a manner that indicates the grouping between the new tabbedportion and the at least one tabbed portion.
 24. A system for groupingtabbed portions of a display object based on content relationships anduser interaction levels associated with the tabbed portions, the systemcomprising: means for providing a display object including one or moretabbed portions for display to a user via a computer display device;means for monitoring a level of user interaction associated with each ofthe tabbed portions; means for receiving a request for adding newinformation to the display object; means for determining a level ofcontent relationship between the new information and informationincluded in at least one of the tabbed portions; and means for creatinga new tabbed portion including the new information and grouping the newtabbed portion with the at least one tabbed portion based on thedetermined level of content relationship and the level of userinteraction associated with the at least one tabbed portion.
 25. Acomputer program product comprising computer executable instructionsembodied in a non-transitory computer readable medium for performingsteps comprising: providing a display object including one or moretabbed portions for display to a user via a computer display device;monitoring a level of user interaction associated with each of thetabbed portions; receiving a request for adding new information to thedisplay object; determining a level of content relationship between thenew information and information included in at least one of the tabbedportions; and creating a new tabbed portion including the newinformation and grouping the new tabbed portion with the at least onetabbed portion based on the level of content relationship and the levelof user interaction associated with the at least one tabbed portion.